import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestForEach {
    public static void main(String[] args) {
//        forEachMap();


        forEachList();
    }

    private static void forEachList() {
        List<String> itemList = new ArrayList<>();
        itemList.add("A");
        itemList.add("B");
        itemList.add("C");
        itemList.add("D");
        itemList.add("E");

        //lambda
        //Output : A,B,C,D,E
//        itemList.forEach(System.out::println);
//
//        //Output : C
//        itemList.forEach(item->{
//            if("C".equals(item)){
//                System.out.println(item);
//            }
//        });
//
//        //方法引用
//        //Output : A,B,C,D,E
//        itemList.forEach(System.out::println);

        //Stream and filter
        //Output : B
        itemList.stream()
                .filter(s->s.contains("B"))
        .forEach(System.out::println);
    }

    private static void forEachMap() {
        Map<String, Integer> items = new HashMap<>();
        items.put("A", 10);
        items.put("B", 20);
        items.put("C", 30);
        items.put("D", 40);
        items.put("E", 50);
        items.put("F", 60);

        items.forEach((k,v)-> System.out.println("Item : " + k + " Count : " + v));

        items.forEach((k,v)->{
            System.out.println("Item : " + k + " Count : " + v);
            if("E".equals(k)){
                System.out.println("Hello E");
            }
        });
    }
}
